<!--  -->
<template>
  <div id="app">
    <h1>{{ counter }}</h1>
    <br />
    <button @click="handleAdd">加</button>
    <button @click="handleSub">减</button>
    <button @click="handleAsyncAdd">异步加</button>
    <br />
    <!-- 计算属性computed -->
    <!-- <h1>{{isEvenOrOdd}}</h1> -->
    <!-- 过滤filter -->
    <h1>{{counter|evenOrOddFilter}}</h1>
  </div>
</template>

<script>
//这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
//例如：import 《组件名称》 from '《组件路径》';

export default {
  filters:{
    evenOrOddFilter:function(value){
      let result=value%2==0?"odd":"even";
      return result;
    }
  },
  //import引入的组件需要注入到对象中才能使用
  components: {},
  data: function () {
    //这里存放数据
    return {
      counter: 333,
    };
  },
  //监听属性 类似于data概念
  computed: {
    isEvenOrOdd: function () {
      let result = this.counter % 2 === 0 ? "odd" : "even";
      return result;
    },
  },
  //监控data中的数据变化
  watch: {},
  //方法集合
  methods: {
    handleAdd:function(){
      this.counter++;
    },
    handleSub:function(){
      this.counter--;
    },
    handleAsyncAdd:function(){
      let _this=this;
      setTimeout(function(){
        _this.counter++;
      },2000)
    }
  },
  //生命周期 - 创建完成（可以访问当前this实例）
  created() {},
  //生命周期 - 挂载完成（可以访问DOM元素）
  mounted() {},
  beforeCreate() {}, //生命周期 - 创建之前
  beforeMount() {}, //生命周期 - 挂载之前
  beforeUpdate() {}, //生命周期 - 更新之前
  updated() {}, //生命周期 - 更新之后
  beforeDestroy() {}, //生命周期 - 销毁之前
  destroyed() {}, //生命周期 - 销毁完成
  activated() {}, //如果页面有keep-alive缓存功能，这个函数会触发
};
</script>
<style  scoped>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>